﻿using System;
using System.Text;
using System.Drawing;
using System.Buffers;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;

public static partial class glDRIVE
{
    /*
    函数 gl.part
    高震荡函数求积法
    参数 a: 积分下限。
    参数 b: 积分上限。要求b>a。
    参数 m: 被积函数中震荡函数的角频率。
    参数 n: 积分区间两端点上f(x)导数最高阶+1。
    参数 fa: fa[n]存放在积分区间左端点x=a处的f(x)0～n-1阶导数值。
    参数 fb: fb[n]存放在积分区间左端点x=b处的f(x)0～n-1阶导数值。
    参数 s: s[2],s[0]与s[1]分别返回被积函数为f(x)cosmx与f(x)sinmx的两个积分值。
    */

    public static string drive_part()
    {
        int n, m;
        double a, b;
        double[] s = new double[2];
        double[] fa = new double[4] { 0.0, 1.0, 0.0, -3.0 };
        double[] fb = new double[4] { 6.2831852, 1.0, -6.2831852, -3.0 };

        a = 0.0;
        b = 6.2831852;
        m = 30;
        n = 4;
        gl.part(a, b, m, n, fa, fb, s);

        string rs = "";
        rs += gl.html_table("左端点x=a处的f(x)0～n-1阶导数值", fa);
        rs += gl.html_table("左端点x=b处的f(x)0～n-1阶导数值", fb);
        rs += gl.html_table("高震荡函数求积法(" + a + "," + b + "):", s);
        return rs;
    }
}
